﻿#ifndef STANDARD_H
#define STANDARD_H
#include "animationloader.h"
#include <QVector2D>
//用于
//参数分配：1.绝对路径 2.图片宽 3.图片长
//4.图片帧数
namespace PLAYER{
    extern const AnimationLoader idle;
    extern const AnimationLoader walking;
    extern const AnimationLoader jumping;
    extern const AnimationLoader dead;
    extern const AnimationLoader attack1;
    extern const AnimationLoader attack2;
    extern const AnimationLoader attack3;
    extern const AnimationLoader attack;
    extern const int loseHPTimePeriod;
    extern const int MaxHP;
    extern const int Player_Width;
    extern const int Player_Height;
    extern const int PlayerTeleportationTime;   //Player缓慢移动到瞬移的帧数
    extern const float PlayerTeleportationMovingProportion;  //player从移动到瞬移要走的距离比例

    extern const QString walkSoundURL;
    extern const QString jumpSoundURL;
}

namespace MONSTER {
    extern const AnimationLoader Bikeridle;
    extern const AnimationLoader Bikerwalking;
    extern const AnimationLoader Bikerfighting;
    extern const AnimationLoader Bikerdead;

    extern const AnimationLoader Batmanidle;
    extern const AnimationLoader Batmanwalking;
    extern const AnimationLoader Batmanfighting;
    extern const AnimationLoader Batmandead;

    extern const AnimationLoader Cyborgidle;
    extern const AnimationLoader Cyborgwalking;
    extern const AnimationLoader Cyborgfighting;
    extern const AnimationLoader Cyborgdead;

    extern const AnimationLoader Robotidle;
    extern const AnimationLoader Robotwalking;
    extern const AnimationLoader Robotfighting;
    extern const AnimationLoader Robotdead;

    extern const AnimationLoader exclamation;
    extern const int MaxHP;
    extern const int loseHPTimePeriod;
    extern const int Monster_Width;
    extern const int Monster_Height;

    extern const float exclamationXOffset;//感叹号相比于monster的x上的偏移量
    extern const float exclamationYOffset;//感叹号相比于monster的y上的偏移量
    extern const int ExclamationWidth;
    extern const int ExclamationHeight;

    extern const QString monsterBeingDestroyedURL ;   //monster被摧毁音效

}

namespace BACKGROUND{
extern const AnimationLoader bg1;
extern const AnimationLoader plate;
extern const AnimationLoader shocked_plate;
extern const AnimationLoader blood;
extern const AnimationLoader healing;
extern const AnimationLoader hurting;
}

namespace TILES{
extern const AnimationLoader industrialTile1;
extern const AnimationLoader industrialTile2;
extern const AnimationLoader industrialTile3;
extern const AnimationLoader industrialTile4;
extern const AnimationLoader industrialTile5;
extern const AnimationLoader industrialTile6;
extern const AnimationLoader industrialTile7;
extern const AnimationLoader industrialTile8;
extern const AnimationLoader industrialTile9;
extern const AnimationLoader masuTile;
extern const AnimationLoader pftTile;
extern const AnimationLoader door1;
extern const AnimationLoader money;
extern const AnimationLoader screen1;
extern const AnimationLoader screen2;
extern const AnimationLoader bench;
extern const AnimationLoader air;
extern const AnimationLoader flag;
extern const AnimationLoader barrel;
extern const AnimationLoader broken;
extern const AnimationLoader plate1;
extern const AnimationLoader ladder1;
extern const AnimationLoader ladder2;
extern const AnimationLoader ladder3;
extern const AnimationLoader q;
extern const AnimationLoader u;
extern const AnimationLoader i;
extern const AnimationLoader t;
extern const AnimationLoader redP1;
extern const AnimationLoader redP2;
extern const AnimationLoader redP3;
extern const AnimationLoader f;
extern const AnimationLoader o;
extern const AnimationLoader r;
extern const AnimationLoader e;
extern const AnimationLoader d;
extern const AnimationLoader k;
extern const AnimationLoader n;
extern const AnimationLoader g;

extern const AnimationLoader locker;
extern const AnimationLoader masuTile2;
extern const AnimationLoader masuTile4;
extern const AnimationLoader pillarRc;
extern const AnimationLoader pillarRb;
extern const AnimationLoader pillarRa;
extern const AnimationLoader pillarBb;
extern const AnimationLoader pillarBc;
extern const AnimationLoader plateR;
extern const AnimationLoader plateM;
extern const AnimationLoader plateL;
extern const AnimationLoader Box8;
}


namespace DRAWORRDER{
//值从低到高，绘制从下往上
extern const int backGround;//背景
extern const int backGroundfilter;//背景的滤镜
extern const int ground;//地面
extern const int door;//游戏结束的门
extern const int platForm;//平台
extern const int item;//物品，如钱、武器
extern const int Monster;//敌人
extern const int Player;//玩家
extern const int QTE;//即时战斗模式
extern const int specialEffect;//特效
extern const int Exclamation;//敌人上的感叹号
extern const int Button;
}

namespace SYSTEM{
    extern const int fpsNormal;
    extern const int fpsExciting;
    extern const int fpsBreathtaking;
    //fps
    extern const int windowWidth;
    extern const int windowHeight;
    extern const int tileSide;
    extern const int imgSide;
    extern const int durationPerFrame;

    extern const QString bgmURL;
    extern const QString icon;
}
namespace ACTIONCONST{
extern const float maxSpeed;
extern const float gravityAcceleration ;
extern const float playerMoveXSpeed;
extern const float playerMoveYSpeed;
extern const float monsterMoveXSpeed;
extern const float monsterMoveYSpeed;
extern const float jump_gravityAcceleration;
extern const int monsterIdleFrame;

}

namespace QTE{
extern const QString PointPicture;
extern const QString PlatePicture;
extern const int qteWidth;
extern const int qteHeight;
extern const QVector2D centralPosition;
extern const int addAngle;
extern const int DELTAANGLE;
extern const int BEGINANGLE;
extern const int ROUNDENDANGLE;
extern const QString REDPART;
extern const QString BLUEPART;
extern const QString ORANGEPART;
extern const QString MOUSEPICTURE;
extern const int mouseWidth;
extern const int mouseHeight;
extern const QVector2D mousePosition;
extern const int playerWidth;
extern const int playerHeight;
extern const int playerPosistionX;
extern const int enermyWidth;
extern const int enermyHeight;
extern const int DrawScale;
extern const int Ground;
extern const int enermyPositionX;
extern const int TIMEWIDTH;
extern const float leastQTEDistance;  //最小可qte距离
extern const float leastQTEAppendDistance;  //追击时的最小可自动qte距离
extern const int QteWinWaitingTime;   //qte结束后等待的动画时间

extern const QString firstStartQTEURL;   //开启qte的音效
extern const QString qteHit1URL;         //击打1音效
extern const QString qteHit2URL;         //击打2音效
extern const QString qteHit3URL;         //击打3音效
extern const QString qteContinueURL;     //qte中播放鼓点音乐
extern const QString qteMissURL;         //击打打空miss
}

namespace FILTER{
//滤镜、特效
extern const AnimationLoader ExitGameFilter;//退出游戏渐变黑色处理
}

namespace BUTTONS{
extern const int ButtonWIDTH;
extern const int ButtonHEIGHT;

extern const QVector2D stopButtonPOS;
extern const QString stopButtonTYPE1;
extern const QString stopButtonTYPE2;
extern const QString stopButtonTYPE3;
extern const QString stopButtonTYPE4;

extern const QVector2D returnMainButtonPOS;
extern const QString returnMainButtonTYPE1;
extern const QString returnMainButtonTYPE2;

extern const QVector2D statisticButtonPOS;
extern const QString statisticButtonTYPE1;
extern const QString statisticButtonTYPE2;
}

namespace DATA{
extern const QString MainLevelDataURL;
extern const QString Level1DataURL;
extern const QString Level2DataURL;
extern const QString Level3DataURL;
extern const QString GameStatisticURL;

}

#endif // STANDARD_H
